package com.yuedou.api.pay.nongshang;

import cn.hutool.json.JSONObject;
import com.yuedou.api.util.DateUtil;
import com.yuedou.api.util.OkHttpClientUtil;

import java.io.IOException;

public class OrderUtil {

    public static void main(String[] args) {

    }

    /**
     *   小程序  发货信息录入接口
     * @param accessToken
     * @param openid
     * @param item_desc
     * @param receiver_contact
     * @param out_trade_no
     * @param mchid
     * @return
     */
    public static String uploadOrder(String accessToken, String openid, String item_desc,String receiver_contact, String out_trade_no,String mchid){
        String ret = "";
        String url  = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" + accessToken;

        JSONObject jsonObject = new JSONObject();
        jsonObject.set("access_token", accessToken);

        JSONObject order_key = new JSONObject();
        //订单单号类型，用于确认需要上传详情的订单。
        // 枚举值1，使用下单商户号和商户侧单号；
        // 枚举值2，使用微信支付单号。
        order_key.set("order_number_type", 1);
//        order_key.set("mchid", mchid);
        order_key.set("out_trade_no", out_trade_no);

        jsonObject.set("order_key", order_key);
        //1、实体物流配送采用快递公司进行实体物流配送形式
        // 2、同城配送
        // 3、虚拟商品，虚拟商品，例如话费充值，点卡等，无实体配送形式
        // 4、用户自提
        jsonObject.set("logistics_type", 3);
        jsonObject.set("delivery_mode", "UNIFIED_DELIVERY");
        jsonObject.set("access_token", accessToken);


        JSONObject shipping_list = new JSONObject();
        shipping_list.set("item_desc", item_desc);

        JSONObject contact = new JSONObject();
        contact.set("receiver_contact", receiver_contact);
        shipping_list.set("contact", contact);

        jsonObject.set("shipping_list", shipping_list);
        //上传时间，用于标识请求的先后顺序 示例值: `2022-12-15T13:29:35.120+08:00`
        jsonObject.set("upload_time", DateUtil.getTime());

        JSONObject payer = new JSONObject();
        payer.set("openid", openid);
        jsonObject.set("payer", payer);


        System.out.println("发货信息录入接口请求参数：" + jsonObject.toString());
        try {
            String resp = OkHttpClientUtil.getInstance().postJson(url, jsonObject.toString());
            System.out.println("发货信息录入接口响应："+ resp);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return ret;
    }
}
